package cn.com.victorysoft.ylgl.service.fracturingpressure.domain;

import cn.com.victorysoft.ylgl.service.commons.domain.BaseEntity;
import cn.com.victorysoft.ylgl.service.commons.json.DateToISODateTimeSerializer;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 压裂作业数据
 */
public class FracturingJob extends BaseEntity {

    private String classification;

    private String wellId;

    private String platform;

    private BigDecimal planMonthly;

    private String buildOrg;

    private String wellPurpose;

    @DateTimeFormat(
            pattern = "yyyy-MM-dd"
    )
    private Date startDate;

    @DateTimeFormat(
            pattern = "yyyy-MM-dd"
    )
    private Date fractureDate;

    private String fractureCraft;

    private BigDecimal fractureIntervalNumber;

    private BigDecimal plannedFluidDispl;

    private BigDecimal plannedSandVol;

    private String constructionSituation;

    private String nextSteps;

    @DateTimeFormat(
            pattern = "yyyy-MM-dd"
    )
    private Date predictionFracturingCompleti;

    private String backupWellNumber;

    private String remarks;

    public String getClassification() {
        return classification;
    }

    public void setClassification(String classification) {
        this.classification = classification;
    }

    public String getWellId() {
        return wellId;
    }

    public void setWellId(String wellId) {
        this.wellId = wellId;
    }

    public String getPlatform() {
        return platform;
    }

    public void setPlatform(String platform) {
        this.platform = platform;
    }

    public BigDecimal getPlanMonthly() {
        return planMonthly;
    }

    public void setPlanMonthly(BigDecimal planMonthly) {
        this.planMonthly = planMonthly;
    }

    public String getBuildOrg() {
        return buildOrg;
    }

    public void setBuildOrg(String buildOrg) {
        this.buildOrg = buildOrg;
    }

    public String getWellPurpose() {
        return wellPurpose;
    }

    public void setWellPurpose(String wellPurpose) {
        this.wellPurpose = wellPurpose;
    }

    @DateTimeFormat(pattern="yyyy-MM-dd")
    @JsonFormat(pattern="yyyy-MM-dd")
    public Date getStartDate() {
        return startDate;
    }

    @JsonSerialize(using = DateToISODateTimeSerializer.class)
    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    @DateTimeFormat(pattern="yyyy-MM-dd")
    @JsonFormat(pattern="yyyy-MM-dd")
    public Date getFractureDate() {
        return fractureDate;
    }

    @JsonSerialize(using = DateToISODateTimeSerializer.class)
    public void setFractureDate(Date fractureDate) {
        this.fractureDate = fractureDate;
    }

    public String getFractureCraft() {
        return fractureCraft;
    }

    public void setFractureCraft(String fractureCraft) {
        this.fractureCraft = fractureCraft;
    }

    public BigDecimal getFractureIntervalNumber() {
        return fractureIntervalNumber;
    }

    public void setFractureIntervalNumber(BigDecimal fractureIntervalNumber) {
        this.fractureIntervalNumber = fractureIntervalNumber;
    }

    public BigDecimal getPlannedFluidDispl() {
        return plannedFluidDispl;
    }

    public void setPlannedFluidDispl(BigDecimal plannedFluidDispl) {
        this.plannedFluidDispl = plannedFluidDispl;
    }

    public BigDecimal getPlannedSandVol() {
        return plannedSandVol;
    }

    public void setPlannedSandVol(BigDecimal plannedSandVol) {
        this.plannedSandVol = plannedSandVol;
    }

    public String getConstructionSituation() {
        return constructionSituation;
    }

    public void setConstructionSituation(String constructionSituation) {
        this.constructionSituation = constructionSituation;
    }

    public String getNextSteps() {
        return nextSteps;
    }

    public void setNextSteps(String nextSteps) {
        this.nextSteps = nextSteps;
    }

    public Date getPredictionFracturingCompleti() {
        return predictionFracturingCompleti;
    }

    public void setPredictionFracturingCompleti(Date predictionFracturingCompleti) {
        this.predictionFracturingCompleti = predictionFracturingCompleti;
    }

    public String getBackupWellNumber() {
        return backupWellNumber;
    }

    public void setBackupWellNumber(String backupWellNumber) {
        this.backupWellNumber = backupWellNumber;
    }

    public String getRemarks() {
        return remarks;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }
}